package main;

import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;

import logica.Proyecto;
import logica.SinNombreException;
import logica.persistencia.ProyectoPersistente;
import controlador.ControladorEditor;

import vista.objetos.ProyectoGraficable;
import vista.ventanas.VentanaIncial;
import eventos.abrir.EventoAbrirEditor;
import eventos.abrir.EventoCrearProyecto;
import eventos.barraMenu.EventoSalir;

import borrador.BoleteriaTeatro;
import borrador.CtaCte;
import borrador.grafica.BoleteriaTeatroGraficable;
import borrador.grafica.VehiculoHerenciaMultipleGraficable;
import xml.XMLManager;


public class Main {

	public static void mainVentanaInicial()
	{
		VentanaIncial ventanaInicial= new VentanaIncial();
		ControladorEditor controlador = ControladorEditor.getInstancia();
		
		ventanaInicial.escucharEventoBotonSalir(new EventoSalir());
		ventanaInicial.escucharEventoBotonNuevoProyecto(new EventoCrearProyecto(ventanaInicial, controlador));
		ventanaInicial.escucharEventoBotonAbrirProyecto(new EventoAbrirEditor(ventanaInicial, controlador));
	}
	
	public static void mainVentanaEditor() throws SinNombreException {
		
		ProyectoGraficable proyecto = new ProyectoGraficable(new Proyecto("Mi_proyecto"));
		XMLManager.getInstance().setPath("");
		ControladorEditor.getInstancia().abrirVentanaEditor(proyecto);
	}
	
	public static void mainBoleteriaGraficable() {
		try {
			BoleteriaTeatroGraficable proyectoGraficable = new BoleteriaTeatroGraficable();	
			String path = "/home/ramiro/Escritorio/BoleteriaPersistido/Datos/BoleteriaPersistido/";
			XMLManager.getInstance().setPath(path);
			XMLManager.getInstance().serializar(proyectoGraficable.proyectoGraficable);
			
			XMLManager.getInstance().clearDocument();
			ProyectoGraficable proyG = new ProyectoGraficable(new Proyecto("BoleteriaPersistido"));
			XMLManager.getInstance().hidratar(proyG);
			
			XMLManager.getInstance().clearDocument();
			String path2 = "/home/ramiro/Escritorio/BoleteriaPersistido/Datos/";
			XMLManager.getInstance().setPath(path2);
			XMLManager.getInstance().serializar(proyG);
			
		} catch (Exception e) {
			e.printStackTrace();
		}
		
	}
	
	public static void mainVehiculoHerenciaMultipleGraficable() {
		try {
			VehiculoHerenciaMultipleGraficable proyectoGraficable;
			proyectoGraficable = new VehiculoHerenciaMultipleGraficable();
			String path = "../VehiculoPersistido/Datos/";
			XMLManager.getInstance().setPath(path);
			XMLManager.getInstance().serializar(proyectoGraficable.proyectoGraficable);
			
			XMLManager.getInstance().clearDocument();
			ProyectoGraficable proyG = new ProyectoGraficable(new Proyecto("VehiculoHerenciaMultiple"));
			XMLManager.getInstance().hidratar(proyG);
			
			XMLManager.getInstance().clearDocument();
			String path2 = "../VehiculoPersistido/Datos/";
			XMLManager.getInstance().setPath(path2);
			XMLManager.getInstance().serializar(proyG);
			
			
		} catch (Exception e) {
				e.printStackTrace();	
		}
		
	}


		

	public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException, UnsupportedLookAndFeelException, SinNombreException
	{
		String l_f;
		//l_f = "com.sun.java.swing.plaf.motif.MotifLookAndFeel";
		//l_f = "com.sun.java.swing.plaf.gtk.GTKLookAndFeel";
		l_f = "com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel";

		UIManager.setLookAndFeel(l_f);
		
		mainVentanaInicial();

		
//		if (args.length == 1 )
//		{
//			if (args[0].compareToIgnoreCase("-e") == 0)
//				mainVentanaEditor();
//			else if (args[0].compareToIgnoreCase("-i") == 0)
//				mainVentanaInicial();
//		}
//		else
//		{	
//			//mainBoleteriaGraficable();
//			mainVehiculoHerenciaMultipleGraficable();
//		}
		
	}
}
